import { ref, watch, reactive, getCurrentInstance } from "vue"
import { publicApi } from '@/api/public'
import request from '@/utils/request'
import { Plus } from '@element-plus/icons-vue'
import bankTypeList from './component/bankTypeList'
import priceList from './component/priceList'
import buttonAction from './component/buttonAction'
import $button from '@/button'
// 课程管理新增
function courseListApi(dataRequest) {
    return request({
        url: '/course/all/tree/list',
        method: 'GET',
        data: dataRequest
    })
}
// 设置默认题库
export function defaultBankApi(dataRequest) {
    return request({
        url: '/course/bank/type/defaultBank',
        method: 'PUT',
        data: dataRequest
    })
}
// 价格管理列表
export function confListApi(dataRequest) {
    return request({
        url: '/course/price/conf/list',
        method: 'POST',
        data: dataRequest
    })
}
//
export function confAddApi(dataRequest) {
    return request({
        url: '/course/price/conf',
        method: 'POST',
        data: dataRequest
    })
}
//
export function confUpdateApi(dataRequest) {
    return request({
        url: '/course/price/conf',
        method: 'PUT',
        data: dataRequest
    })
}
// 价格管理列表
export function confDelApi(dataRequest) {
    return request({
        url: '/course/price/conf/' + dataRequest,
        method: 'DELETE',
    })
}
// 课程管理新增
export function treeSubject(dataRequest) {
    return courseListApi(dataRequest)
}
export function courseAddApi(dataRequest) {
    return request({
        url: '/course',
        method: 'POST',
        data: dataRequest
    })
}
// 课程管理修改
export function coursePutApi(dataRequest) {
    return request({
        url: '/course',
        method: 'PUT',
        data: dataRequest
    })
}
// 课程管理删除
export function courseDelApi(id) {
    return request({
        url: '/course/' + id,
        method: 'DELETE',

    })
}
// 类型list
export function typeListApi(dataRequest) {
    return request({
        url: '/course/bank/type/list',
        method: 'POST',
        data: dataRequest
    })
}
// 类型list
export function typeAddApi(dataRequest) {
    return request({
        url: '/course/bank/type',
        method: 'POST',
        data: dataRequest
    })
}
// 类型list
export function typePutApi(dataRequest) {
    return request({
        url: '/course/bank/type',
        method: 'PUT',
        data: dataRequest
    })
}
// 类型删除
export function typeDelApi(id) {
    return request({
        url: '/course/bank/type/' + id,
        method: 'DELETE',

    })
}
export function typeDisApi(dataRequest) {
    return request({
        url: '/course/bank/type/disable',
        method: 'PUT',
        data: dataRequest
    })
}
export const operationItem = reactive({
    defaultSearch: false,//默认搜索按钮
    defaultRefresh: false,//默认重置按钮
    customTableHeader: false,//
    SearchItem: [
        // {
        //     code: "name",
        //     name: "姓名",
        //     type: 'input',
        // },
    ],
    menuArray: [
        {
            show: true,
            type: 'primary',
            text: '新增课程',
            hasPermi: [$button.traincourseadd || null],
            icon: Plus,
            customParameters: 'add',//自定义函数参数
            handle: () => {
                console.log('handle')
            }
        },
    ]
})
export const tableItem = reactive({
    select: false,//多选框
    loading: false,
    index: !true,//顺序
    expandAll: false,//树形默认展开
    tree: true,//树形
    column: [
        {
            label: '课程名称',
            prop: 'name',
            treeNode: true,
            labelIcon: 'bankTypeListText',//打开标签显示
            img: true,//图片显示
            align: 'left',//对齐方式 全局
        },
        {
            label: '题库类型',
            component: bankTypeList,
            align: 'center',//对齐方式 全局
            param: ''

        },
        {
            label: '课程价格',
            component: priceList,
            align: 'center',
        },
        {
            label: '操作',
            prop: 'action',
            component: buttonAction,
            align: 'center',//对齐方式 全局
        },
    ],
    pageInfo: {
        request: {
            "nickName": "",
            "typeCode": "",
            "pageDomain": {
                "pageNum": 1,//分页页面数
                "pageSize": 10,//分页页面数据大小
                "orderByColumn": "",//搜索参数
                "isAsc": "",//搜索参数
                "reasonable": ""//搜索参数
            }
        },
        pagesClose: true,//是否开启分页
        url: '',//分页路由，不传的话需要传入自定义的分页函数paging 传入时定义的分页函数paging会失效
        method: 'GET',//分页请求方法，不传默认为POST
        // 分页函数paging
        paging: function () {
            tableItem.loading = true
            courseListApi(tableItem.pageInfo.request).then(res => {
                tableItem.tableData.data = res.rows
                tableItem.tableData.total = res.total
                const recursionList = (list) => {
                    list.map((item) => {
                        item.levelNum == 3 ? item.rowShowClose = ['levelAdd'] : ''
                        item.bankTypeList && item.bankTypeList.length > 0 ? item.bankTypeListText = '已配置' : ''
                        item.children && item.children.length > 0 ? recursionList(item.children) : ''
                    })
                }
                recursionList(tableItem.tableData.data)
                tableItem.loading = false

            }).catch(() => { tableItem.loading = false })
        }
    },
    // 分页数据 自定义分页函数paging时需要把值赋给tableData
    tableData: {
        total: '',//分页总计
        // 分页数据
        data: []
    },
    // 操作栏按钮
    btnArray: [
        {
            label: '新增下级',
            labelEn: 'levelAdd',
            show: true,
            type: 'primary',//类别 摈弃了text
            plain: true,//镂空按钮  优先文字按钮
            text: true,//文字按钮
            hasPermi: [$button.traincourseadd || null],
            customParameters: 'subAdd',//自定义函数参数
            // 按钮方法
            handle: function (row) {
                console.log('row', row)
            }
        },
        {
            type: 'primary',//类别 摈弃了text
            label: '修改',
            labelEn: 'edit',
            hasPermi: [$button.traincourseedit || null],
            show: true,
            plain: true,//镂空按钮  优先文字按钮
            text: true,//文字按钮
            customParameters: 'edit',//自定义函数参数
            // 按钮方法
            handle: function (row) {
                console.log('row', row)
            }
        },
        {
            type: 'primary',//类别 摈弃了text
            label: '类型管理',
            labelEn: 'management',
            show: true,
            plain: true,//镂空按钮  优先文字按钮
            text: true,//文字按钮
            // 按钮方法
            handle: function (row) {
                console.log('row', row)
            }
        },
        {
            type: 'danger',//类别 摈弃了text
            label: '删除',
            hasPermi: [$button.traincourseremove || null],
            show: true,
            plain: true,//镂空按钮  优先文字按钮
            text: true,//文字按钮
            // 按钮方法
            handle: function (row) {
                console.log('row', row)
            }
        },
        {
            type: 'primary',//类别
            label: '价格管理',
            hasPermi: [$button.traincoursePricelist || null],
            show: true,
            plain: true,//镂空按钮  优先文字按钮
            text: true,//文字按钮
            // 按钮方法
            handle: function (row) { }
        },
    ],
    moreBtnArray: [],
    // 选择框触发
    selectChange: function (row) {
        console.log(row)
    },
}
)


